Power management techniques for increasing battery life in an alert generation system

ABSTRACT

This disclosure provides systems and methods for providing an emergency alert notification. An electronic communication device can receive, from an alert generation device, a low power advertising packet responsive to an action performed on the alert generation device. Before the action is performed, the alert generation device can be in a low power state, such as a sleep state, to conserve battery. The action can cause the alert generation device to transition from the low power state to a second state in which the alert generation device begins transmitting the advertising packet. The electronic communication device can identify at least one emergency contact to receive an alert based on a contact policy and can determine an alert type based on the contact policy. The electronic communication device can generate the alert including a request for assistance and can transmit the alert to the at least one emergency contact.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/417,275, filed on May 20, 2019 and entitled “POWER MANAGEMENTTECHNIQUES FOR INCREASING BATTERY LIFE IN AN ALERT GENERATION SYSTEM,”which is a continuation of U.S. patent application Ser. No. 16/032,884,filed on Jul. 11, 2018 and entitled “POWER MANAGEMENT TECHNIQUES FORINCREASING BATTERY LIFE IN AN ALERT GENERATION SYSTEM,” which claimspriority to U.S. Provisional Patent Application No. 62/532,254, filed onJul. 13, 2017 and entitled “ALERT NOTIFICATION SYSTEM WITH ADAPTIVENOTIFICATION POLICIES,” each of which is incorporated herein byreference in its entirety.

FIELD OF THE DISCLOSURE

This disclosure generally relates to alert notification systems andmethods. In particular the disclosure relates to efficiently managingpower consumption of alert notification systems including short-rangecommunication devices for transmitting alerts via a cellular or wirelesscommunications network.

BACKGROUND OF THE DISCLOSURE

Various situations and events may require notifications to be sent froma computing device of an individual to one or more contacts of theindividual. However, in some instances, the individual may not have easyaccess to the computing device to generate the notification and toselect the contacts to whom the notification is to be sent.

BRIEF SUMMARY OF THE DISCLOSURE

An alert notification system with adaptive notification policies, aswell as power management techniques for the system, are provided. Thesystem can include a computing device in communication with a portabledevice. The portable device can be a device carried, worn, or closelyheld by a user. The computing device can be, for example, a mobilephone, a tablet computing device, a laptop computer, or a desktopcomputer. In situations in which the user is unable to readily accessthe computing device, the user can cause a notification to be sent fromthe computing device by interacting instead with the portable device,which may be more easily accessible to the user. The portable device mayinclude a simple user interface including, for example, a single buttonthat the user can press to indicate that an alert notification should besent to one or more of the user's contacts. The portable device canwirelessly transmit, to the computing device, a signal or indicationthat causes the computing device to send an electronic notification toone or more computing devices associated with one or more contacts. Thecomputing device, responsive to receiving the signal, can cause thecomputing device to identify, via the signal, an application executableon the computing device. The application executing on the computingdevice can access a contact list and select the one or more contactsbased on a predetermined set of parameters and cause the computingdevice to transmit an alert notification to computing devices of theselected contacts without the user having to interact directly with thecomputing device.

The methods, systems and apparatus provided in this disclosure can beuseful in various applications. For example, in some implementations,the methods, systems, and apparatus of this disclosure can allow a userto quickly and reliably call or request for help in an emergencysituation. During an emergency situation, the user may need to contacthelp as quickly as possible. Emergency situations may include anysituations that put the health or safety of a person at risk. Quicklyand reliably notifying police, firefighters, friends, family members,nearby good Samaritans, or other emergency contacts can significantlyincrease the likelihood that a person will be able to safely cope withthe emergency situation. However, it can be difficult for a person tocall or request for help in an emergency situation, because means ofcommunication, such as a cellular phone, may be inaccessible to theperson in such a situation.

In some implementations, a user may have a portable electronic devicewith a simple user interface. The portable device may be worn on theusers body (for example, as an integrated component of a piece ofjewelry or other accessory), carried in the user's pocket, or otherwisestored by the user such that the user has easy and fast access to theportable device. The portable device also can include a simple userinterface through which the individual can interact with the portabledevice. For example, in some implementations the user interface of theportable device may consist of only a single button. Thus, in emergencysituations during which the user may not have sufficient time to send analert (such as an email, a text message, or a voice call) to anemergency contact using a traditional computing device, the user mayinstead interact with the portable device. Interaction with the portabledevice can be significantly faster and easier due to its simple userinterface. For example, pressing the single button on the portabledevice may take no more than a few seconds for the user to accomplish.The portable device can then communicate with a computing device, suchas a mobile phone, a tablet computing device, a laptop computing device,or a desktop computing device to cause the computing device to send analert notification to one or more contacts of the user without the userinteracting directly with the computing device.

In some implementations, the computing device can execute a softwareapplication to assist with the functionality described above. Forexample, the application can receive the indication that the user haspressed the button on the portable device. In response, the applicationcan select one or more emergency contacts of the user who should benotified that the user may be experiencing an emergency requiringimmediate assistance. In some implementations, the application canselect the one or more emergency contacts based on a set of policiesthat may take into account information such as time of day and currentlocation to determine an appropriate group of one or more emergencycontacts to be notified. The computing device can then transmit an alertnotification to each of the selected emergency contacts, for example viaemail, text message, or voice call. The alert notifications can notifythe selected emergency contacts that the user may be in distress and canalso provide information indicating the user's location, therebyallowing the emergency contacts to come to the user to provideassistance.

One aspect of this disclosure is directed to a system for providing anemergency alert notification. The system can include an alert generationdevice and an electronic communication device. The electroniccommunication device can be configured to receive, from the alertgeneration device, a low power advertising packet responsive to anaction performed on the alert generation device causing the alertgeneration device to switch from a first state to a second state.Responsive to receiving the advertising packet from the alert generationdevice, the electronic communication device can be configured todetermine a current location of the electronic communication device. Theelectronic communication device can be configured to identify at leastone emergency contact to receive an alert based on a contact policy. Thecontact policy can be stored in a memory element of the electroniccommunication device or otherwise accessed by the electroniccommunication device. The electronic communication device can beconfigured to determine an alert type based on the contact policy. Theelectronic communication device can be configured to generate the alertincluding a request for assistance. The alert can correspond to thedetermined alert type. The electronic communication device can beconfigured to transmit the alert to the at least one emergency contact.

In some implementations, the contact policy can include calendarinformation stored in a memory element of the electronic communicationdevice or otherwise accessible by the electronic communication device.In some implementations, the electronic communication device can beconfigured to identify the at least one emergency contact bydetermining, based on the calendar information stored in the memoryelement of the electronic communication device, that a user of theelectronic device is scheduled to be at a work-related event when thelow energy advertising packet is received. The electronic communicationdevice can also identify the at least one emergency contact from among aplurality of coworkers of the user.

In some implementations, the electronic communication device canidentifies the at least one emergency contact by determining arespective current location of each of a plurality of contacts andidentifying the at least one emergency contact from among the pluralityof contacts based on a proximity of the current location of each of theplurality of contacts to the current location of the electroniccommunication device. In some implementations, the electroniccommunication device can receive a response to the alert from acomputing device associated with the at least one emergency contact. Theresponse can indicate that the at least one emergency contact receivedthe alert.

In some implementations, the electronic communication device can befurther configured to determine that the at least one emergency contacthas not provided a response to the alert within a predetermined timeperiod. The electronic communication device can be further configured toidentify, responsive to the determination that the at least oneemergency contact has not provided the response to the alert within thepredetermined time period, at least a second emergency contact toreceive a second alert based on the contact policy. The electroniccommunication device can be further configured to determine an alerttype of the second alert based on the contact policy. The electroniccommunication device can be further configured to generate the secondalert including a request for assistance. The second alert cancorrespond to the alert type determined for the second alert. Theelectronic communication device can be further configured to transmitthe second alert to the second emergency contact.

In some implementations, the electronic communication device can befurther configured to generate, responsive to receiving the low energyadvertising packet, an audible alarm. In some implementations, theelectronic communication device can be further configured to generate avisual indication that the alert was transmitted to the at least oneemergency contact. In some implementations, the electronic communicationdevice can transmit the alert to the at least one emergency contact byupdating a status of a social media account of a user of the electroniccommunication device to indicate that the user of the electroniccommunication device may require emergency assistance. In someimplementations, the electronic communication device can be furtherconfigured to generate the alert to include an indication of thelocation of the electronic device.

In some implementations, the electronic communication device can befurther configured to track, for a predetermined time period, thelocation of the electronic communication device. The electroniccommunication device can also be configured to update, during thepredetermined period of time, a website to include an indication of thelocation of the electronic device during the predetermined time period.The alert can include a uniform resource locator (URL) of the website.

Another aspect of this disclosure is directed to a method for providingan emergency alert notification. The method can include receiving, by anelectronic communication device from an alert generation device, a lowpower advertising packet responsive to an action performed on the alertgeneration device causing the alert generation device to switch from afirst state to a second state. Responsive to receiving the advertisingpacket from the alert generation device, the method can includedetermining, by the electronic communication device, a current locationof the electronic communication device. The method can includeidentifying, by the electronic communication device, at least oneemergency contact to receive an alert based on a contact policy. Thecontact policy can be stored in a memory element of the electroniccommunication device. The method can include determining, by theelectronic communication device, an alert type based on the contactpolicy. The method can include generating, by the electroniccommunication device, the alert including a request for assistance. Thealert can correspond to the determined alert type. The method caninclude transmitting, by the electronic communication device, the alertto the at least one emergency contact.

In some implementations, the contact policy can include calendarinformation stored in a memory element of the electronic communicationdevice. In some implementations, identifying the at least one emergencycontact can include determining, by the electronic communication devicebased on the calendar information stored in the memory element of theelectronic communication device, that a user of the electronic device isscheduled to be at a work-related event when the low energy advertisingpacket is received. The method can also include identifying the at leastone emergency contact from among a plurality of coworkers of the user.

In some implementations, identifying the at least one emergency contactcan include determining, by the electronic communication device, arespective current location of each of a plurality of contacts, andidentifying the at least one emergency contact from among the pluralityof contacts based on a proximity of the current location of each of theplurality of contacts to the current location of the electroniccommunication device. In some implementations, the method can includereceiving, by the electronic communication device, a response to thealert from a computing device associated with the at least one emergencycontact. The response can indicate that the at least one emergencycontact received the alert.

In some implementations, the method can include determining, by theelectronic communication device, that the at least one emergency contacthas not provided a response to the alert within a predetermined timeperiod. The method can also include identifying, by the electroniccommunication device responsive to the determination that the at leastone emergency contact has not provided the response to the alert withinthe predetermined time period, at least a second emergency contact toreceive a second alert based on the contact policy. The method can alsoinclude determining, by the electronic communication device, an alerttype of the second alert based on the contact policy. The method canalso include generating, by the electronic communication device, thesecond alert including a request for assistance. The second alert cancorrespond to the alert type of the second alert. The method can alsoinclude transmitting, by the electronic communication device, the secondalert to the second emergency contact.

In some implementations, the method can include generating, by theelectronic communication device responsive to receiving the low energyadvertising packet, an audible alarm. In some implementations, themethod can include generating, by the electronic communication device, avisual indication that the alert was transmitted to the at least oneemergency contact. In some implementations, transmitting the alert tothe at least one emergency contact can include updating a status of asocial media account of a user of the electronic communication device toindicate that the user of the electronic communication device mayrequire emergency assistance. In some implementations, the method caninclude generating, by the electronic communication device, the alert toinclude an indication of the location of the electronic device.

In some implementations, the method can include tracking, by theelectronic communication device for a predetermined time period, thelocation of the electronic communication device. The method can alsoinclude updating, by the electronic communication device during thepredetermined period of time, a website to include an indication of thelocation of the electronic device during the predetermined time period,wherein the alert comprises a uniform resource locator (URL) of thewebsite.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, aspects, features, and advantages ofthe disclosure will become more apparent and better understood byreferring to the following description taken in conjunction with theaccompanying drawings, in which:

FIG. 1A is a block diagram depicting an embodiment of a networkenvironment comprising a client device in communication with a serverdevice;

FIG. 1B is a block diagram depicting a cloud computing environmentcomprising a client device in communication with cloud serviceproviders;

FIGS. 1C and 1D are block diagrams depicting embodiments of computingdevices useful in connection with the methods and systems describedherein.

FIG. 2A depicts some of the architecture of an implementation of asystem configured to provide an alert notification according to adaptivenotification policies.

FIG. 2B depicts an alternative configuration of the system shown in FIG.2A.

FIG. 2C depicts a website that can serve as an alert notification withinthe system of FIG. 2A.

FIG. 3 depicts a fashion accessory that can be used in connection withthe system shown in FIG. 2A.

FIG. 4 depicts an implementation of a method for providing an alertnotification according to adaptive notification policies.

DETAILED DESCRIPTION

For purposes of reading the description of the various embodimentsbelow, the following descriptions of the sections of the specificationand their respective contents may be helpful:

Section A describes a network environment and computing environmentwhich may be useful for practicing embodiments described herein.

Section B describes power management techniques for increasing batterylife in an alert generation system.

A. Computing and Network Environment

Prior to discussing specific embodiments of the present solution, it maybe helpful to describe aspects of the operating environment as well asassociated system components (e.g., hardware elements) in connectionwith the methods and systems described herein. Referring to FIG. 1A, anembodiment of a network environment is depicted. In brief overview, thenetwork environment includes one or more clients 102 a-102 n (alsogenerally referred to as local machine(s) 102, client(s) 102, clientnode(s) 102, client machine(s) 102, client computer(s) 102, clientdevice(s) 102, endpoint(s) 102, or endpoint node(s) 102) incommunication with one or more agents 103 a-103 n and one or moreservers 106 a-106 n (also generally referred to as server(s) 106, node106, or remote machine(s) 106) via one or more networks 104. In someembodiments, a client 102 has the capacity to function as both a clientnode seeking access to resources provided by a server and as a serverproviding access to hosted resources for other clients 102 a-102 n.

Although FIG. 1A shows a network 104 between the clients 102 and theservers 106, the clients 102 and the servers 106 may be on the samenetwork 104. In some embodiments, there are multiple networks 104between the clients 102 and the servers 106. In one of theseembodiments, a network 104′ (not shown) may be a private network and anetwork 104 may be a public network. In another of these embodiments, anetwork 104 may be a private network and a network 104′ a publicnetwork. In still another of these embodiments, networks 104 and 104′may both be private networks.

The network 104 may be connected via wired or wireless links. Wiredlinks may include Digital Subscriber Line (DSL), coaxial cable lines, oroptical fiber lines. The wireless links may include BLUETOOTH, Wi-Fi,Worldwide Interoperability for Microwave Access (WiMAX), an infraredchannel or satellite band. The wireless links may also include anycellular network standards used to communicate among mobile devices,including standards that qualify as 1G, 2G, 3G, or 4G. The networkstandards may qualify as one or more generation of mobiletelecommunication standards by fulfilling a specification or standardssuch as the specifications maintained by International TelecommunicationUnion. The 3G standards, for example, may correspond to theInternational Mobile Telecommunications-2000 (IMT-2000) specification,and the 4G standards may correspond to the International MobileTelecommunications Advanced (IMT-Advanced) specification. Examples ofcellular network standards include AMPS, GSM, GPRS, UMTS, LTE, LTEAdvanced, Mobile WiMAX, and WiMAX-Advanced. Cellular network standardsmay use various channel access methods e.g. FDMA, TDMA, CDMA, or SDMA.In some embodiments, different types of data may be transmitted viadifferent links and standards. In other embodiments, the same types ofdata may be transmitted via different links and standards.

The network 104 may be any type and/or form of network. The geographicalscope of the network 104 may vary widely and the network 104 can be abody area network (BAN), a personal area network (PAN), a local-areanetwork (LAN), e.g. Intranet, a metropolitan area network (MAN), a widearea network (WAN), or the Internet. The topology of the network 104 maybe of any form and may include, e.g., any of the following:point-to-point, bus, star, ring, mesh, or tree. The network 104 may bean overlay network which is virtual and sits on top of one or morelayers of other networks 104′. The network 104 may be of any suchnetwork topology as known to those ordinarily skilled in the art capableof supporting the operations described herein. The network 104 mayutilize different techniques and layers or stacks of protocols,including, e.g., the Ethernet protocol, the internet protocol suite(TCP/IP), the ATM (Asynchronous Transfer Mode) technique, the SONET(Synchronous Optical Networking) protocol, or the SDH (SynchronousDigital Hierarchy) protocol. The TCP/IP internet protocol suite mayinclude application layer, transport layer, internet layer (including,e.g., IPv6), or the link layer. The network 104 may be a type of abroadcast network, a telecommunications network, a data communicationnetwork, or a computer network.

In some embodiments, the system may include multiple, logically-groupedservers 106. In one of these embodiments, the logical group of serversmay be referred to as a server farm 38 (not shown) or a machine farm 38.In another of these embodiments, the servers 106 may be geographicallydispersed. In other embodiments, a machine farm 38 may be administeredas a single entity. In still other embodiments, the machine farm 38includes a plurality of machine farms 38. The servers 106 within eachmachine farm 38 can be heterogeneous—one or more of the servers 106 ormachines 106 can operate according to one type of operating systemplatform (e.g., WINDOWS NT, manufactured by Microsoft Corp. of Redmond,Wash.), while one or more of the other servers 106 can operate onaccording to another type of operating system platform (e.g., Unix,Linux, or Mac OS X).

In one embodiment, servers 106 in the machine farm 38 may be stored inhigh-density rack systems, along with associated storage systems, andlocated in an enterprise data center. In this embodiment, consolidatingthe servers 106 in this way may improve system manageability, datasecurity, the physical security of the system, and system performance bylocating servers 106 and high performance storage systems on localizedhigh performance networks. Centralizing the servers 106 and storagesystems and coupling them with advanced system management tools allowsmore efficient use of server resources.

The servers 106 of each machine farm 38 do not need to be physicallyproximate to another server 106 in the same machine farm 38. Thus, thegroup of servers 106 logically grouped as a machine farm 38 may beinterconnected using a wide-area network (WAN) connection or ametropolitan-area network (MAN) connection. For example, a machine farm38 may include servers 106 physically located in different continents ordifferent regions of a continent, country, state, city, campus, or room.Data transmission speeds between servers 106 in the machine farm 38 canbe increased if the servers 106 are connected using a local-area network(LAN) connection or some form of direct connection. Additionally, aheterogeneous machine farm 38 may include one or more servers 106operating according to a type of operating system, while one or moreother servers 106 execute one or more types of hypervisors rather thanoperating systems. In these embodiments, hypervisors may be used toemulate virtual hardware, partition physical hardware, virtualizephysical hardware, and execute virtual machines that provide access tocomputing environments, allowing multiple operating systems to runconcurrently on a host computer. Native hypervisors may run directly onthe host computer. Hypervisors may include VMware ESX/ESXi, manufacturedby VMWare, Inc., of Palo Alto, Calif.; the Xen hypervisor, an opensource product whose development is overseen by Citrix Systems, Inc.;the HYPER-V hypervisors provided by Microsoft or others. Hostedhypervisors may run within an operating system on a second softwarelevel. Examples of hosted hypervisors may include VMware Workstation andVIRTUALBOX.

Management of the machine farm 38 may be de-centralized. For example,one or more servers 106 may comprise components, subsystems and modulesto support one or more management services for the machine farm 38. Inone of these embodiments, one or more servers 106 provide functionalityfor management of dynamic data, including techniques for handlingfailover, data replication, and increasing the robustness of the machinefarm 38. Each server 106 may communicate with a persistent store and, insome embodiments, with a dynamic store.

Server 106 may be a file server, application server, web server, proxyserver, appliance, network appliance, gateway, gateway server,virtualization server, deployment server, SSL VPN server, or firewall.In one embodiment, the server 106 may be referred to as a remote machineor a node. In another embodiment, a plurality of nodes 290 may be in thepath between any two communicating servers.

Referring to FIG. 1B, a cloud computing environment is depicted. A cloudcomputing environment may provide client 102 with one or more resourcesprovided by a network environment. The cloud computing environment mayinclude one or more clients 102 a-102 n, in communication withrespective agents 103 a-103 n and with the cloud 108 over one or morenetworks 104. Clients 102 may include, e.g., thick clients, thinclients, and zero clients. A thick client may provide at least somefunctionality even when disconnected from the cloud 108 or servers 106.A thin client or a zero client may depend on the connection to the cloud108 or server 106 to provide functionality. A zero client may depend onthe cloud 108 or other networks 104 or servers 106 to retrieve operatingsystem data for the client device. The cloud 108 may include back endplatforms, e.g., servers 106, storage, server farms or data centers.

The cloud 108 may be public, private, or hybrid. Public clouds mayinclude public servers 106 that are maintained by third parties to theclients 102 or the owners of the clients. The servers 106 may be locatedoff-site in remote geographical locations as disclosed above orotherwise. Public clouds may be connected to the servers 106 over apublic network. Private clouds may include private servers 106 that arephysically maintained by clients 102 or owners of clients. Privateclouds may be connected to the servers 106 over a private network 104.Hybrid clouds 108 may include both the private and public networks 104and servers 106.

The cloud 108 may also include a cloud based delivery, e.g. Software asa Service (SaaS) 110, Platform as a Service (PaaS) 112, andInfrastructure as a Service (IaaS) 114. IaaS may refer to a user rentingthe use of infrastructure resources that are needed during a specifiedtime period. IaaS providers may offer storage, networking, servers orvirtualization resources from large pools, allowing the users to quicklyscale up by accessing more resources as needed. Examples of IaaS includeAMAZON WEB SERVICES provided by Amazon.com, Inc., of Seattle, Wash.,RACKSPACE CLOUD provided by Rackspace US, Inc., of San Antonio, Tex.,Google Compute Engine provided by Google Inc. of Mountain View, Calif.,or RIGHTSCALE provided by RightScale, Inc., of Santa Barbara, Calif.PaaS providers may offer functionality provided by IaaS, including,e.g., storage, networking, servers or virtualization, as well asadditional resources such as, e.g., the operating system, middleware, orruntime resources. Examples of PaaS include WINDOWS AZURE provided byMicrosoft Corporation of Redmond, Wash., Google App Engine provided byGoogle Inc., and HEROKU provided by Heroku, Inc. of San Francisco,Calif. SaaS providers may offer the resources that PaaS provides,including storage, networking, servers, virtualization, operatingsystem, middleware, or runtime resources. In some embodiments, SaaSproviders may offer additional resources including, e.g., data andapplication resources. Examples of SaaS include GOOGLE APPS provided byGoogle Inc., SALESFORCE provided by Salesforce.com Inc. of SanFrancisco, Calif., or OFFICE 365 provided by Microsoft Corporation.Examples of SaaS may also include data storage providers, e.g. DROPBOXprovided by Dropbox, Inc. of San Francisco, Calif., Microsoft SKYDRIVEprovided by Microsoft Corporation, Google Drive provided by Google Inc.,or Apple ICLOUD provided by Apple Inc. of Cupertino, Calif.

Clients 102 may access IaaS resources with one or more IaaS standards,including, e.g., Amazon Elastic Compute Cloud (EC2), Open CloudComputing Interface (OCCI), Cloud Infrastructure Management Interface(CIMI), or OpenStack standards. Some IaaS standards may allow clientsaccess to resources over HTTP, and may use Representational StateTransfer (REST) protocol or Simple Object Access Protocol (SOAP).Clients 102 may access PaaS resources with different PaaS interfaces.Some PaaS interfaces use HTTP packages, standard Java APIs, JavaMailAPI, Java Data Objects (JDO), Java Persistence API (JPA), Python APIs,web integration APIs for different programming languages including,e.g., Rack for Ruby, WSGI for Python, or PSGI for Perl, or other APIsthat may be built on REST, HTTP, XML, or other protocols. Clients 102may access SaaS resources through the use of web-based user interfaces,provided by a web browser (e.g. GOOGLE CHROME, Microsoft INTERNETEXPLORER, or Mozilla Firefox provided by Mozilla Foundation of MountainView, Calif.). Clients 102 may also access SaaS resources throughsmartphone or tablet applications, including, e.g., Salesforce SalesCloud, or Google Drive app. Clients 102 may also access SaaS resourcesthrough the client operating system, including, e.g., Windows filesystem for DROPBOX.

In some embodiments, access to IaaS, PaaS, or SaaS resources may beauthenticated. For example, a server or authentication server mayauthenticate a user via security certificates, HTTPS, or API keys. APIkeys may include various encryption standards such as, e.g., AdvancedEncryption Standard (AES). Data resources may be sent over TransportLayer Security (TLS) or Secure Sockets Layer (SSL).

The client 102 and server 106 may be deployed as and/or executed on anytype and form of computing device, e.g. a computer, network device orappliance capable of communicating on any type and form of network andperforming the operations described herein. FIGS. 1C and 1D depict blockdiagrams of a computing device 100 useful for practicing an embodimentof the client 102 or a server 106. As shown in FIGS. 1C and 1D, eachcomputing device 100 includes a central processing unit 121, and a mainmemory unit 122. As shown in FIG. 1C, a computing device 100 may includea storage device 128, an installation device 116, a network interface118, an I/O controller 123, display devices 124 a-124 n, a keyboard 126and a pointing device 127, e.g. a mouse. The storage device 128 mayinclude, without limitation, an operating system, software, and asoftware of an alert notification system 120. As shown in FIG. 1D, eachcomputing device 100 may also include additional optional elements, e.g.a memory port 103, a bridge 170, one or more input/output devices 130a-130 n (generally referred to using reference numeral 130), and a cachememory 140 in communication with the central processing unit 121.

The central processing unit 121 is any logic circuitry that responds toand processes instructions fetched from the main memory unit 122. Inmany embodiments, the central processing unit 121 is provided by amicroprocessor unit, e.g.: those manufactured by Intel Corporation ofMountain View, Calif.; those manufactured by Motorola Corporation ofSchaumburg, Ill.; the ARM processor and TEGRA system on a chip (SoC)manufactured by Nvidia of Santa Clara, Calif.; the POWER7 processor,those manufactured by International Business Machines of White Plains,N.Y.; or those manufactured by Advanced Micro Devices of Sunnyvale,Calif. The computing device 100 may be based on any of these processors,or any other processor capable of operating as described herein. Thecentral processing unit 121 may utilize instruction level parallelism,thread level parallelism, different levels of cache, and multi-coreprocessors. A multi-core processor may include two or more processingunits on a single computing component. Examples of a multi-coreprocessors include the AMD PHENOM IIX2, INTEL CORE i5 and INTEL CORE i7.

Main memory unit 122 may include one or more memory chips capable ofstoring data and allowing any storage location to be directly accessedby the microprocessor 121. Main memory unit 122 may be volatile andfaster than storage 128 memory. Main memory units 122 may be Dynamicrandom access memory (DRAM) or any variants, including static randomaccess memory (SRAM), Burst SRAM or SynchBurst SRAM (BSRAM), Fast PageMode DRAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended Data Output RAM(EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extended DataOutput DRAM (BEDO DRAM), Single Data Rate Synchronous DRAM (SDR SDRAM),Double Data Rate SDRAM (DDR SDRAM), Direct Rambus DRAM (DRDRAM), orExtreme Data Rate DRAM (XDR DRAM). In some embodiments, the main memory122 or the storage 128 may be non-volatile; e.g., non-volatile readaccess memory (NVRAM), flash memory non-volatile static RANI (nvSRAM),Ferroelectric RANI (FeRAM), Magnetoresistive RANI (MRAM), Phase-changememory (PRAM), conductive-bridging RANI (CBRAM),Silicon-Oxide-Nitride-Oxide-Silicon (SONOS), Resistive RAM (RRANI),Racetrack, Nano-RANI (NRAM), or Millipede memory. The main memory 122may be based on any of the above described memory chips, or any otheravailable memory chips capable of operating as described herein. In theembodiment shown in FIG. 1C, the processor 121 communicates with mainmemory 122 via a system bus 150 (described in more detail below). FIG.1D depicts an embodiment of a computing device 100 in which theprocessor communicates directly with main memory 122 via a memory port103. For example, in FIG. 1D the main memory 122 may be DRDRAM.

FIG. 1D depicts an embodiment in which the main processor 121communicates directly with cache memory 140 via a secondary bus,sometimes referred to as a backside bus. In other embodiments, the mainprocessor 121 communicates with cache memory 140 using the system bus150. Cache memory 140 typically has a faster response time than mainmemory 122 and is typically provided by SRAM, BSRAM, or EDRAM. In theembodiment shown in FIG. 1D, the processor 121 communicates with variousI/O devices 130 via a local system bus 150. Various buses may be used toconnect the central processing unit 121 to any of the I/O devices 130,including a PCI bus, a PCI-X bus, or a PCI-Express bus, or a NuBus. Forembodiments in which the I/O device is a video display 124, theprocessor 121 may use an Advanced Graphics Port (AGP) to communicatewith the display 124 or the I/O controller 123 for the display 124. FIG.1D depicts an embodiment of a computer 100 in which the main processor121 communicates directly with I/O device 130 b or other processors 121′via HYPERTRANSPORT, RAPIDIO, or INFINIBAND communications technology.FIG. 1D also depicts an embodiment in which local busses and directcommunication are mixed: the processor 121 communicates with I/O device130 a using a local interconnect bus while communicating with I/O device130 b directly.

A wide variety of I/O devices 130 a-130 n may be present in thecomputing device 100. Input devices may include keyboards, mice,trackpads, trackballs, touchpads, touch mice, multi-touch touchpads andtouch mice, microphones, multi-array microphones, drawing tablets,cameras, single-lens reflex camera (SLR), digital SLR (DSLR), CMOSsensors, accelerometers, infrared optical sensors, pressure sensors,magnetometer sensors, angular rate sensors, depth sensors, proximitysensors, ambient light sensors, gyroscopic sensors, or other sensors.Output devices may include video displays, graphical displays, speakers,headphones, inkjet printers, laser printers, and 3D printers.

Devices 130 a-130 n may include a combination of multiple input oroutput devices, including, e.g., Microsoft KINECT, Nintendo Wiimote forthe WII, Nintendo WII U GAMEPAD, or Apple IPHONE. Some devices 130 a-130n allow gesture recognition inputs through combining some of the inputsand outputs. Some devices 130 a-130 n provides for facial recognitionwhich may be utilized as an input for different purposes includingauthentication and other commands. Some devices 130 a-130 n provides forvoice recognition and inputs, including, e.g., Microsoft KINECT, SIRIfor IPHONE by Apple, Google Now or Google Voice Search.

Additional devices 130 a-130 n have both input and output capabilities,including, e.g., haptic feedback devices, touchscreen displays, ormulti-touch displays. Touchscreen, multi-touch displays, touchpads,touch mice, or other touch sensing devices may use differenttechnologies to sense touch, including, e.g., capacitive, surfacecapacitive, projected capacitive touch (PCT), in-cell capacitive,resistive, infrared, waveguide, dispersive signal touch (DST), in-celloptical, surface acoustic wave (SAW), bending wave touch (BWT), orforce-based sensing technologies. Some multi-touch devices may allow twoor more contact points with the surface, allowing advanced functionalityincluding, e.g., pinch, spread, rotate, scroll, or other gestures. Sometouchscreen devices, including, e.g., Microsoft PIXELSENSE orMulti-Touch Collaboration Wall, may have larger surfaces, such as on atable-top or on a wall, and may also interact with other electronicdevices. Some I/O devices 130 a-130 n, display devices 124 a-124 n orgroup of devices may be augment reality devices. The I/O devices may becontrolled by an I/O controller 123 as shown in FIG. 1C. The I/Ocontroller may control one or more I/O devices, such as, e.g., akeyboard 126 and a pointing device 127, e.g., a mouse or optical pen.Furthermore, an I/O device may also provide storage and/or aninstallation medium 116 for the computing device 100. In still otherembodiments, the computing device 100 may provide USB connections (notshown) to receive handheld USB storage devices. In further embodiments,an I/O device 130 may be a bridge between the system bus 150 and anexternal communication bus, e.g. a USB bus, a SCSI bus, a FireWire bus,an Ethernet bus, a Gigabit Ethernet bus, a Fibre Channel bus, or aThunderbolt bus.

In some embodiments, display devices 124 a-124 n may be connected to I/Ocontroller 123. Display devices may include, e.g., liquid crystaldisplays (LCD), thin film transistor LCD (TFT-LCD), blue phase LCD,electronic papers (e-ink) displays, flexile displays, light emittingdiode displays (LED), digital light processing (DLP) displays, liquidcrystal on silicon (LCOS) displays, organic light-emitting diode (OLED)displays, active-matrix organic light-emitting diode (AMOLED) displays,liquid crystal laser displays, time-multiplexed optical shutter (TMOS)displays, or 3D displays. Examples of 3D displays may use, e.g.stereoscopy, polarization filters, active shutters, or autostereoscopic.Display devices 124 a-124 n may also be a head-mounted display (HMD). Insome embodiments, display devices 124 a-124 n or the corresponding I/Ocontrollers 123 may be controlled through or have hardware support forOPENGL or DIRECTX API or other graphics libraries.

In some embodiments, the computing device 100 may include or connect tomultiple display devices 124 a-124 n, which each may be of the same ordifferent type and/or form. As such, any of the I/O devices 130 a-130 nand/or the I/O controller 123 may include any type and/or form ofsuitable hardware, software, or combination of hardware and software tosupport, enable or provide for the connection and use of multipledisplay devices 124 a-124 n by the computing device 100. For example,the computing device 100 may include any type and/or form of videoadapter, video card, driver, and/or library to interface, communicate,connect or otherwise use the display devices 124 a-124 n. In oneembodiment, a video adapter may include multiple connectors to interfaceto multiple display devices 124 a-124 n. In other embodiments, thecomputing device 100 may include multiple video adapters, with eachvideo adapter connected to one or more of the display devices 124 a-124n. In some embodiments, any portion of the operating system of thecomputing device 100 may be configured for using multiple displays 124a-124 n. In other embodiments, one or more of the display devices 124a-124 n may be provided by one or more other computing devices 100 a or100 b connected to the computing device 100, via the network 104. Insome embodiments software may be designed and constructed to use anothercomputer's display device as a second display device 124 a for thecomputing device 100. For example, in one embodiment, an Apple iPad mayconnect to a computing device 100 and use the display of the device 100as an additional display screen that may be used as an extended desktop.One ordinarily skilled in the art will recognize and appreciate thevarious ways and embodiments that a computing device 100 may beconfigured to have multiple display devices 124 a-124 n.

Referring again to FIG. 1C, the computing device 100 may comprise astorage device 128 (e.g. one or more hard disk drives or redundantarrays of independent disks) for storing an operating system or otherrelated software, and for storing application software programs such asany program related to the alert notification system 120. Examples ofstorage device 128 include, e.g., hard disk drive (HDD); optical driveincluding CD drive, DVD drive, or BLU-RAY drive; solid-state drive(SSD); USB flash drive; or any other device suitable for storing data.Some storage devices may include multiple volatile and non-volatilememories, including, e.g., solid state hybrid drives that combine harddisks with solid state cache. Some storage device 128 may benon-volatile, mutable, or read-only. Some storage device 128 may beinternal and connect to the computing device 100 via a bus 150. Somestorage device 128 may be external and connect to the computing device100 via a I/O device 130 that provides an external bus. Some storagedevice 128 may connect to the computing device 100 via the networkinterface 118 over a network 104, including, e.g., the Remote Disk forMACBOOK AIR by Apple. Some client devices 100 may not require anon-volatile storage device 128 and may be thin clients or zero clients102. Some storage device 128 may also be used as an installation device116, and may be suitable for installing software and programs.Additionally, the operating system and the software can be run from abootable medium, for example, a bootable CD, e.g. KNOPPIX, a bootable CDfor GNU/Linux that is available as a GNU/Linux distribution fromknoppix.net.

Client device 100 may also install software or application from anapplication distribution platform. Examples of application distributionplatforms include the App Store for iOS provided by Apple, Inc., the MacApp Store provided by Apple, Inc., GOOGLE PLAY for Android OS providedby Google Inc., Chrome Webstore for CHROME OS provided by Google Inc.,and Amazon Appstore for Android OS and KINDLE FIRE provided byAmazon.com, Inc. An application distribution platform may facilitateinstallation of software on a client device 102. An applicationdistribution platform may include a repository of applications on aserver 106 or a cloud 108, which the clients 102 a-102 n may access overa network 104. An application distribution platform may includeapplication developed and provided by various developers. A user of aclient device 102 may select, purchase and/or download an applicationvia the application distribution platform.

Furthermore, the computing device 100 may include a network interface118 to interface to the network 104 through a variety of connectionsincluding, but not limited to, standard telephone lines LAN or WAN links(e.g., 802.11, T1, T3, Gigabit Ethernet, Infiniband), broadbandconnections (e.g., ISDN, Frame Relay, ATM, Gigabit Ethernet,Ethernet-over-SONET, ADSL, VDSL, BPON, GPON, fiber optical includingFiOS), wireless connections, or some combination of any or all of theabove. Connections can be established using a variety of communicationprotocols (e.g., TCP/IP, Ethernet, ARCNET, SONET, SDH, Fiber DistributedData Interface (FDDI), IEEE 802.11a/b/g/n/ac CDMA, GSM, WiMax and directasynchronous connections). In one embodiment, the computing device 100communicates with other computing devices 100′ via any type and/or formof gateway or tunneling protocol e.g. Secure Socket Layer (SSL) orTransport Layer Security (TLS), or the Citrix Gateway Protocolmanufactured by Citrix Systems, Inc. of Ft. Lauderdale, Fla. The networkinterface 118 may comprise a built-in network adapter, network interfacecard, PCMCIA network card, EXPRESSCARD network card, card bus networkadapter, wireless network adapter, USB network adapter, modem or anyother device suitable for interfacing the computing device 100 to anytype of network capable of communication and performing the operationsdescribed herein.

A computing device 100 of the sort depicted in FIGS. 1B and 1C mayoperate under the control of an operating system, which controlsscheduling of tasks and access to system resources. The computing device100 can be running any operating system such as any of the versions ofthe MICROSOFT WINDOWS operating systems, the different releases of theUnix and Linux operating systems, any version of the MAC OS forMacintosh computers, any embedded operating system, any real-timeoperating system, any open source operating system, any proprietaryoperating system, any operating systems for mobile computing devices, orany other operating system capable of running on the computing deviceand performing the operations described herein. Typical operatingsystems include, but are not limited to: WINDOWS 2000, WINDOWS Server2012, WINDOWS CE, WINDOWS Phone, WINDOWS XP, WINDOWS VISTA, and WINDOWS7, WINDOWS RT, and WINDOWS 8 all of which are manufactured by MicrosoftCorporation of Redmond, Wash.; MAC OS and iOS, manufactured by Apple,Inc. of Cupertino, Calif.; and Linux, a freely-available operatingsystem, e.g. Linux Mint distribution (“distro”) or Ubuntu, distributedby Canonical Ltd. of London, United Kingom; or Unix or other Unix-likederivative operating systems; and Android, designed by Google, ofMountain View, Calif., among others. Some operating systems, including,e.g., the CHROME OS by Google, may be used on zero clients or thinclients, including, e.g., CHROMEBOOK S.

The computer system 100 can be any workstation, telephone, desktopcomputer, laptop or notebook computer, netbook, ULTRABOOK, tablet,server, handheld computer, mobile telephone, smartphone or otherportable telecommunications device, media playing device, a gamingsystem, mobile computing device, or any other type and/or form ofcomputing, telecommunications or media device that is capable ofcommunication. The computer system 100 has sufficient processor powerand memory capacity to perform the operations described herein. In someembodiments, the computing device 100 may have different processors,operating systems, and input devices consistent with the device. TheSamsung GALAXY smartphones, e.g., operate under the control of Androidoperating system developed by Google, Inc. GALAXY smartphones receiveinput via a touch interface.

In some embodiments, the computing device 100 is a gaming system. Forexample, the computer system 100 may comprise a PLAYSTATION 3, orPERSONAL PLAYSTATION PORTABLE (PSP), or a PLAYSTATION VITA devicemanufactured by the Sony Corporation of Tokyo, Japan, a NINTENDO DS,NINTENDO 3DS, NINTENDO WII, or a NINTENDO WII U device manufactured byNintendo Co., Ltd., of Kyoto, Japan, an XBOX 360 device manufactured bythe Microsoft Corporation of Redmond, Wash.

In some embodiments, the computing device 100 is a digital audio playersuch as the Apple IPOD, IPOD Touch, and IPOD NANO lines of devices,manufactured by Apple Computer of Cupertino, Calif. Some digital audioplayers may have other functionality, including, e.g., a gaming systemor any functionality made available by an application from a digitalapplication distribution platform. For example, the IPOD Touch mayaccess the Apple App Store. In some embodiments, the computing device100 is a portable media player or digital audio player supporting fileformats including, but not limited to, MP3, WAV, M4A/AAC, WMA ProtectedAAC, AIFF, Audible audiobook, Apple Lossless audio file formats and.mov, .m4v, and .mp4 MPEG-4 (H.264/MPEG-4 AVC) video file formats.

In some embodiments, the computing device 100 is a tablet e.g. the IPADline of devices by Apple; GALAXY TAB family of devices by Samsung; orKINDLE FIRE, by Amazon.com, Inc. of Seattle, Wash. In other embodiments,the computing device 100 is an eBook reader, e.g. the KINDLE family ofdevices by Amazon.com, or NOOK family of devices by Barnes & Noble, Inc.of New York City, N.Y.

In some embodiments, the communications device 102 includes acombination of devices, e.g. a smartphone combined with a digital audioplayer or portable media player. For example, one of these embodimentsis a smartphone, e.g. the IPHONE family of smartphones manufactured byApple, Inc.; a Samsung GALAXY family of smartphones manufactured bySamsung, Inc; or a Motorola DROID family of smartphones. In yet anotherembodiment, the communications device 102 is a laptop or desktopcomputer equipped with a web browser and a microphone and speakersystem, e.g. a telephony headset. In these embodiments, thecommunications devices 102 are web-enabled and can receive and initiatephone calls. In some embodiments, a laptop or desktop computer is alsoequipped with a webcam or other video capture device that enables videochat and video call.

In some embodiments, the status of one or more machines 102, 106 in thenetwork 104 is monitored, generally as part of network management. Inone of these embodiments, the status of a machine may include anidentification of load information (e.g., the number of processes on themachine, CPU and memory utilization), of port information (e.g., thenumber of available communication ports and the port addresses), or ofsession status (e.g., the duration and type of processes, and whether aprocess is active or idle). In another of these embodiments, thisinformation may be identified by a plurality of metrics, and theplurality of metrics can be applied at least in part towards decisionsin load distribution, network traffic management, and network failurerecovery as well as any aspects of operations of the present solutiondescribed herein. Aspects of the operating environments and componentsdescribed above will become apparent in the context of the systems andmethods disclosed herein.

B. Power Management Techniques for Increasing Battery Life in an AlertGeneration System

An alert notification system with adaptive notification policies, aswell as power management techniques for such a system, are provided. Thesystem can include a computing device, such as an electroniccommunication device, in communication with a portable device, such as aportable alert generation device. The portable device can be a devicecarried, worn, or otherwise closely held by a user. The computing devicecan be, for example, a mobile phone, a tablet computing device, a laptopcomputer, or a desktop computer. In situations in which the user isunable to readily access the computing device, the user can cause anotification to be sent from the computing device by interacting insteadwith the portable device, which may be more easily accessible to theuser. The portable device may include a simple user interface including,for example, a single button that the user can press to indicate that analert notification should be sent to one or more of the user's contacts.The portable device can wirelessly transmit to the computing device anindication that the user wishes to send a notification to one or morecontacts. The computing device can then select the one or more contactsbased on a predetermined set of parameters and transmit an alertnotification to the selected contacts without the user having tointeract directly with the computing device.

The methods, systems and apparatus provided in this disclosure can beuseful in various applications. For example, in some implementations,the methods, systems, and apparatus of this disclosure can allow a userto quickly, discreetly and reliably call or request for help in anemergency situation. During an emergency situation, the user may need tocontact help as quickly as possible. Emergency situations may includeany situations that put the health or safety of a person at risk.Quickly and reliably notifying police, firefighters, friends, familymembers, nearby good Samaritans, or other emergency contacts cansignificantly increase the likelihood that a person will be able tosafely cope with the emergency situation. However, it can be difficultfor a person to call or request for help in an emergency situation,because means of communication, such as a cellular phone, may beinaccessible to the person in such a situation. Many times people don'thave enough time to reach their phone before it's too late. There is noeasily accessible, discreet, and reliable way to call for help in anemergency.

The systems and methods described herein provide smart jewelry andaccessories that allow users to instantly contact friends, family andpolice in the event of an emergency. The systems can include a portabledevice designed to fit into a custom array of bracelets, watches,necklaces, key chains, anything stylish people actually want to wear.Users can simply press a button in an emergency to notify a group oftheir contacts with their GPS location and connect them to the nearest911 operator.

In some implementations, no charging of the portable device may benecessary. Thus, a user does not have to worry about charging yetanother device. The battery for the portable device can last for oneyear or more, and a user can have the option to repurchase a new product(i.e., a new portable device) at a discount. For example, the batterymay be permanently installed in the portable device so that the userdoes not have to be concerned with recharging or replacing the battery.The portable device itself can be configured to operate in a manner thatpromotes long battery life. For example, while situations in which auser requires emergency assistance are very serious, their frequency ofoccurrence for a typical user may be relatively rare. However, emergencysituations often arise unexpectedly without advance notice to the user.As a result, the user should always be prepared to deal with anemergency situation, even if such a situation occurs only rarely for theuser.

The portable device can be configured to operate in a power-efficientmanner under the assumption that emergency situations are both rare andunexpected. For example, the relative rarity and unexpected nature ofemergency situations means that the portable device will likely not needto be activated for most of its life, but that it should be easilyaccessible to a user at any time. This disclosure provides techniquesfor configuring an operating the portable device to take advantage ofthis. In some implementations, the portable device can normally operatein a first state that is relatively power efficient. For example, theportable device can operate in a low power mode, such as a sleep mode,during normal situations in which emergency assistance is not needed.

The portable device can also be configured such that it is simple andfast for a user to cause the portable device to transition out of thefirst state into a second state that may require more power during anemergency situation. For example, as described above, the portabledevice may have a simple user interface (e.g., a single button) that theuser may use to quickly put the portable device into the second state,in which the portable device can work together with the computing deviceto provide an alert notification to one or more emergency contacts.Because power is conserved during normal (e.g., non-emergency)situations as described above, the portable device is more likely tohave sufficient battery level to perform any of the more power-intensivefunctionality that may be used to notify the emergency contact, asdescribed further below.

In some implementations, the simplified nature of the portable deviceitself can also be used to conserve battery. For example, the portabledevice may be configured to provide only a limited feature set, such asindicating that the user requires emergency assistance. Thus, activationof the portable device by the user (e.g., via an interaction with thesimple user interface of the portable device, as described above) can besufficient on its own to indicate that the user needs assistance. As aresult, the information required to be transmitted from the portabledevice to the computing device can be quite limited. In someimplementations, because the portable device normally operates in a lowpower mode in which it may not transmit any information, the computingdevice may recognize that any transmission of information from theportable device, regardless of the data content of such a transmission,indicates that the user has activated the portable device. Thus, theportable device may transmit simple packets, such as advertising packetsthat contain no data payload (or only a relatively small data payload)to the computing device, and the computing device can still recognizethat the user has activated the portable device to request emergencyassistance. In some implementations, it can be useful to performcomputationally intensive tasks such as determining one or morepotential emergency contacts, generating one or more alerts, andtransmitting the alerts to the emergency contacts. This disclosureprovides techniques for offloading these computationally intensivefeatures, which typically require substantial batter power, to thecomputing device, rather than performing them on the portable deviceitself. The computing device may be a cell phone, a laptop computer, oranother type of device typically having more processing power than theportable device, as well as a rechargeable battery, and may therefore bebetter suited to performing such tasks as compared to the portabledevice. In some implementations, the computing device can execute anapplication configured to facilitate performance of this functionality,as well as to provide a degree of customization to the user. Thus, byconfiguring the portable device and the computing device incomplementary ways, as described further below, battery power of theportable device can be intelligently conserved, which can extend thelife of the portable device and can help to ensure that the portabledevice will function as intended when an emergency situation arises.

The subject matter of this disclosure has the power to enhance the livesof many people. For example, college students, young children, gradeschool students, runners, elderly individuals, and professionals whowork late night shifts or all alone may benefit from the systems andmethods described herein. Current personal security systems areineffective because they are large in size, unappealing in aesthetics,or inconvenient to use. The systems described in this disclosure offer asolution that can be easily accessible, stylish, inexpensive,non-rechargeable and interchangeable. Additionally, current solutionsmay be offered as a single accessory. In contrast, this disclosuredescribes an interchangeable component which offers the user flexibilityto switch between various forms. For example, the component can beplaced inside a watch while going for a run in the morning and later thesame night in a necklace at a black tie event.

A user can purchase or otherwise possess a component and an accompanyingaccessory, such as a necklace, bracelet, or watch. The user can thendownload an application onto a computing device such as a smart phone.Via the application, the user sets up a personal profile, selectsemergency contacts, and enables extra features such as the ability toplay a loud alarm. In an emergency, the user can simply double press thecomponent to send designated contacts an alert message containing theuser's location.

Once the application is installed on the user's computing device and thecomponent is paired with it, the application will run in the backgroundof the user's computing device listening for an alert to be sent fromthe component. If the component is double pressed, an alert is sent tothe application on the computing device using Bluetooth Low Energy (BLE)communications. The application will in turn cause the computing deviceto send an alert, such as a text message containing a request for helpalong with location information to one or more emergency contacts.Additionally there can be a feature to guarantee instant access toemergency responders. This feature can implement a software servicecalled RAPIDSOS that connects the primary emergency contacts to theuser's nearest 911 operator who receives the user's location. The user'semergency contacts are then connected to the 911 operator via phone callto provide additional information.

In some implementations, the component may be a portable electronicdevice with a simple user interface. The portable device may be worn onthe user's body (for example, as an integrated component of a piece ofjewelry or other accessory), carried in the user's pocket, or otherwisestored by the user such that the user has easy and fast access to theportable device. The portable device also can include a simple userinterface through which the individual can interact with the portabledevice. For example, in some implementations the user interface of theportable device may consist of only a single button. Thus, in emergencysituations during which the user may not have sufficient time to send analert (such as an email, a text message, or a voice call) to anemergency contact using a traditional computing device, the user mayinstead interact with the portable device. Interaction with the portabledevice can be significantly faster and easier due to its simple userinterface. For example, pressing the single button on the portabledevice may take no more than a few seconds for the user to accomplish.The portable device can then communicate with a computing device, suchas a mobile phone, a tablet computing device, a laptop computing device,or a desktop computing device to cause the computing device to send analert notification to one or more contacts of the user without the userinteracting directly with the computing device.

Various features and functionality of the systems and methods describedin this disclosure are introduced briefly below. These features andfunctionality are described more fully with respect to FIGS. 2A-2C, 3,and 4.

In some implementations, the computing device can execute a softwareapplication to assist with the functionality described above. Forexample, the application can receive the indication that the user haspressed the button on the portable device. In response, the applicationcan select one or more emergency contacts of the user who should benotified that the user may be experiencing an emergency requiringimmediate assistance. In some implementations, the application canselect the one or more emergency contacts based on a set of policiesthat may take into account information such as time of day and currentlocation to determine an appropriate group of one or more emergencycontacts to be notified. The computing device can then transmit an alertnotification to each of the selected emergency contacts, for example viaemail, text message, or voice call. The alert notifications can notifythe selected emergency contacts that the user may be in distress and canalso provide information indicating the user's location, therebyallowing the emergency contacts to come to the user to provideassistance.

In some implementations, the systems and methods of this disclosure canprovide various other functionality as well. For example, the portableelectronic device can integrate with various fashion accessories.Accessories that interface with portable device can designed to bestylish, so that users no longer need to sacrifice safety for fashionand vice versa. Accessories can also be discreet with a modular portabledevice incorporated into the accessory, so that the accessory will nottip off an attacker that the user has used the accessory and associatedportable component to call for help. Accessories also can beinterchangeable. The portable device can fit within a wide variety ofjewelry pieces and other accessories, allowing users to vary the jewelrythey'd like to wear every day.

In some implementations, the system can provide an alarm featureallowing a user to play a loud noise to attract help and deterattackers. An auto contact 911 feature can allow the device to send anSMS message to police if no emergency contacts respond.

In some implementations, no charging of the portable device isnecessary. Users don't have to worry about charging yet another device.The battery can last for one year or more, and users can have the optionto repurchase a new product at a discount. The portable device also canbe interchanged within jewelry and other accessories. The portabledevice can easily fit into to the back of the custom designed charm toallow users to quickly and easily change which piece of jewelry, watchor accessory they'd like to wear.

In some implementations, the system can provide location-based alerts. Auser can configure an application executing on the computing device toautomatically determine which emergency contacts are notified based ontheir current location. For example, when the user is at work, coworkerscan be notified, and when the user is at home, family & friends can benotified.

In some implementations, the system can be designed to provide a customaudible alert. For example, a user can record a customized voice messageto be played during an emergency alert to deter an attacker.

In some implementations, the system can provide consistent tracking. Forexample, the system can continuously or periodically monitor itslocation via information received, for example, from a globalpositioning system, cellular tower triangulation, or sensors on thedevice, such as an accelerometer or barometer. The system can storeupdated location information on an ongoing basis during an emergencysituation, and can publish such information electronically (e.g., via anotification or a live website), so that emergency contacts that alsohave the corresponding application installed on their own computingdevices can be able to check the user's up-to-date location at any time.

In some implementations, the system can allow a user to track sentalerts. The application executing on the user's computing device cancheck whether or not the user's emergency contacts have read sentemergency notifications and if not, the application can respondaccordingly. For example, an emergency notification sent to an emergencycontact can include a request for the emergency contact to respond withan indication that the notification has been received. The computingdevice can continuously or periodically check for such a response. Insome implementations, such a response may be transmitted back to thecomputing device in the absence of any direct action on the part of theemergency contact, for example in the form of a “read receipt”indicating that information associated with the emergency notificationhas been displayed on an electronic device of the emergency contact.

In some implementations, the system can allow a user to receive a“dummy” call from a customized fake account configured to appear to be acontact of the user. A user can activate a special alert to receive adummy call from the customized fake contact.

In some implementations, the system can provide customizablenotifications. A user can customize the emergency notification messageso only the user would understand the message displayed on the phone inan emergency. For example, when an alert is activated, the user mayreceive a notification from a roommate with an inconspicuous message,such as “we need milk.”

In some implementations, the portable device can include a multipurposelight indicator. A double blinking light can indicate that an emergencyalert was activated. A single blinking light can indicate that thebattery is low.

In some implementations, the portable device can include a multipurposevibration indicator. A first sequential vibrate can inform the user analert was sent. A second sequential vibration can inform the user thathelp is on the way.

In some implementations, notification can show low battery.Notifications can display battery lifetime in a user configurablesetting on the home screen of the user's computing device in days,hours, as a percentage, or in other forms.

In some implementations, the system can allow nearby good Samaritans tobe notified of an emergency situation. Other users that have an instanceof the application installed on their own computing devices can receiveemergency notifications from the user that is not in their network ifthey are close by.

In some implementations, the system can include integrated pepper sprayor potent. For example, the system can include a mechanism of storageand release for potent to fight off an attacker.

In some implementations, the system can include an integrated sharpobject. For example, the system can include a mechanism for a sharpobject to fight off an attacker.

In some implementations, the system can provide a test alertnotification. A user can send test notifications to the user's contactsin order for them to prepare for real emergency situations.

In some implementations, the system can provide glucose monitoring. Forexample, blood sugar can be monitored by the portable device to measureseverity of an emergency. In some implementations, the system canprovide heartrate monitoring. For example, heart rate can be monitoredby the portable device to measure severity of an emergency.

In some implementations, the system can provide a WiFi alert capability.If the user's computing device is dead, the portable device can connectto an available WiFi network to send an emergency alert.

In some implementations, the system can provide fingerprint scanningfunctionality, so that only the designated user can activate an alert.In some implementations, the system can include fingerprint recordingfunctionality allowing a fingerprint to be recorded in order to use asevidence after an emergency.

In some implementations, the system can provide facial recognition. Forexample, video recording can be used to monitor and record an attacker.In some implementations, as described above, the system can include acomputing device such as a smartphone, which may include one or morecameras. When the system is activated, the camera of the computingdevice can also be activated to capture video or still images. The videoor still images can be processed to detect any human faces that may beincluded in the image data, and the human faces can be compared to a setof reference information for tracking purposes. For example, image datafor faces can be compared to facial image data stored in a database ofknown dangerous persons, which may be provided by a governmentalorganization.

In some implementations, the system can track location patterns. Forexample, the system can track normal location patterns of the user inorder to be able to detect unusual scenarios in which incidents may beoccurring. For example, the user may typically leave work and go to aparking lot. If the user has left work and is mid-way to the parking lotbefore the user's location changes to unusual information, the locationinformation can be used to help carry out an investigation.

In some implementations, the system can provide distance trackingreminder notifications, which can track the distance between thecomputing device and the portable device to remind the user if the userisn't wearing or carrying the portable device.

In some implementations, the system can provide timer tracking remindernotifications, allowing the user to customize a time of day they wouldlike to receive a reminder to wear the portable device. For example, theuser can set the time they usually leave for work to receive a reminderto wear their portable device before leaving.

In some implementations, the system can provide calendar linkedmonitoring. For example, the system can check the user's electroniccalendar for location and event information to provide emergencycontacts or police with more background information during an emergency.In some implementations, the system can provide missed events detectionby comparing the user's location to calendar event information to detectif the user missed an event and notify emergency contacts to check inwith the user.

The features and functionality of systems for providing emergencynotifications that have been briefly introduced above are describedfurther below in connection with FIGS. 2A-2C, 3, and 4.

Referring now to FIG. 2A, an architecture of an implementation of asystem 200 configured to provide an alert notification according toadaptive notification policies is depicted. The system 200 includes analert generation device 210, an electronic communication device 230, aserver 250, and a set of emergency contacts 270. The alert generationdevice 210 is communicatively coupled with the electronic communicationdevice 230, and the electronic communication device 230 iscommunicatively coupled with the server and the emergency contacts 270.In some implementations, the components of the system 200 can include orcan be implemented using the systems and devices described above inconnection with FIGS. 1A-1D. For example, the alert generation device210 may correspond to one of the agents 103 a-103 n shown in FIGS. 1Aand 1B, the electronic communication device 230 may correspond to arespective on of the clients 102 a-102 n, and the server 250 maycorrespond to one of the servers 106 a-106 n. Similarly, any of thecomponents of the system 200 may be implemented using computing devicessimilar to those shown in FIGS. 1C and 1D and may include any of thefeatures of those devices, such as the CPU 121, the memory 122, the I/Odevices 130 a-130 n, the network interface 118, etc.

Referring again to FIG. 2A, the system 200 can be used to allow a userto quickly and easily send an alert notification to one or more of theemergency contacts 270 during a situation in which the user may requireimmediate assistance. Generally, the user interacts with a simple userinterface provided by the alert generation device 210, causing the alertgeneration device 210 to provide an indication to the electroniccommunication device 230 that the user is in distress. The electroniccommunication device 230 then automatically selects a subset of theemergency contacts 270 to be notified based on a set of policies,generates an alert notification, and sends the alert notification to theselected emergency contacts 270. In some implementations, certainfunctionality, such as enforcement of the policies, may instead beprovided by the server 250 rather than the electronic communicationdevice 230. The operation of the system 200 is described in furtherdetail below.

The alert generation device 210 includes an input button 212, anemergency indication generator 214, a vitals monitor 216, and a battermonitor 218. The alert generation device 210 can be an electronic devicethat is closely held by a user such that the portable device is readilyaccessible by the user throughout the day. For example, the alertgeneration device 210 can be a wearable device, such as a device thatcan be integrated into clothing or a wearable accessor such as jewelry(e.g., a necklace, a bracelet, or a watch). The alert generation device210 can also be referred to as a portable device. The alert generationdevice 210 may therefore be small in size and may include a simple userinterface. For example, the alert generation device 210 may include onlyone input button 212. A user of the alert generation device 210 can usethe alert generation device 210 to quickly and easily call for help inan emergency situation during which it may be impossible or inefficientfor the user to interact directly with the electronic communicationdevice 230 to call for help.

The emergency indication generator 214 can be configured to generate andtransmit to the electronic communication device 230 a simple indicationthat the user is in distress, in response to various user inputs. Forexample, in some implementations, the user can press the input button212 to cause the emergency indication generator 214 to generate andtransmit the indication. In some implementations, the emergencyindication generator 214 may only generate and transmit the indicationin response to detecting a predetermined pattern of presses of thebutton 212, in order to help prevent unintentional indications frombeing generated. For example, the user may be required to press theinput button twice within a predetermined time period in order to causethe emergency indication generator to transmit the indication to theelectronic communication device 230. In some implementations, thefunctionality of the input button 212 can be configurable, as describedfurther below. In some implementations, the emergency indicationgenerator transmits the indication to the electronic communicationdevice 230 via a wireless communication protocol, such as Bluetooth(including Bluetooth Low Energy) or WiFi. For example, the indicationcan be transmitted as an advertising packet. An advertising packet mayinclude information that identifies the alert generation device 210,such as a hardware identifier, a unique device identifier (UDID), amedia access control (MAC) address, an IP address, etc.

In some implementations, such an advertising packet may not includeinformation relating to a data payload. In some implementations, theadvertising packet may include at least one field explicitly identifyingthe packet as an advertising packet. For example, such a field may be aprotocol data unit (PDU) field, which may be included in a header of theadvertising packet. The PDU field may have a value selected to match avalue reserved for advertising packets, or otherwise indicating that thepacket is an advertising packet. In some implementations, theadvertising packet may further include information indicating that theadvertising packet is sent without any request to establish a connectionwith the electronic communication device 230. For example, theadvertising packet may have a PDU Type field indicating that the alertgeneration device 210 is a non-connectable device. In some otherimplementations, the advertising packets may include a request from thealert generation device 210 to establish a connection or othercommunication session with the electronic communication device 230. Insome implementations, the advertising packet may include an advertisingpayload, which may be determined based on the specific action performedon the alert generation device 210. For example, the alert generationdevice 210 may generate an advertising packet having an advertisingpayload that indicates the type of action performed by the user on thealert generation device 210, such as a single press of the input button212, a double press, a long press, etc.

In some implementations, the emergency indication generator 214 isconfigured to generate and transmit the indication of distress to theelectronic communication device 230 in the absence of any intentionalaction from a user of the alert generation device 210 (e.g., pressingthe button 210). For example, the vitals monitor 216 can be configuredto measure various biometric information of the user and to process suchinformation to determine whether the emergency indication generator 214should transmit an indication to the electronic communication device230. In some implementations, the vitals monitor may monitor a heartrate or a blood glucose level of the user of the alert generation device210. If the vitals monitor 216 determines that any of the vitalinformation it receives from the user indicates a possible healthemergency (e.g., a dangerously low blood glucose level or a heart rateindicative of heart failure), the vitals monitor 216 can cause theemergency indication generator 214 to send the indication to theelectronic communication device 230.

The alert generation device 210 can include a battery to supply power tothe various components of the alert generation device 210, and the powerlevel of the batter can be monitored by the battery monitor 218. In someimplementations, the battery may be permanently installed, and may notbe rechargeable by the user. The battery may have a relatively longlife, such as up to one year or longer. The battery monitor 218 candetect the battery level and can provide an alert to the user when thebattery level falls below a predetermined threshold (e.g., 10%) so thatthe user is made aware that the alert generation device 210 (or thebattery) should be replaced soon. In some implementations, the batterymonitor 218 can provide the alert via an output device associated withthe alert generation device 210, such as an indicator light or aspeaker.

In some implementations, to conserve battery, the alert generationdevice 210 can be configured to respond to the user interaction bytransitioning from a first state to a second state. For example, thealert generation device 210 may normally be in a low power mode, such asa sleep mode, in which the alert generation device 210 conserves powerby not transmitting information, or by only transmitting informationinfrequently. The alert generation device 210 can be configured totransition out of the lower power mode or sleep mode and into adifferent state in which the alert generation device 210 beginstransmitting the advertising packet one or more times in response to theuser interaction (e.g., a press or pattern of presses of the inputbutton 212). In some implementations, the alert generation device 210can pair with the electronic communication device 230 once, and may thenenter the low power mode or sleep mode until the user performs theaction that causes the alert generation device 210 to transition out ofthe sleep mode and begin transmitting the advertising packet. Forexample, the initial pairing can include any process by which the alertgeneration device 210 registers with or identifies itself to theelectronic communication device 230. The electronic communication device230 can store a universal device identifier (UDID) or other identifierassociated with the alert generation device 210 after the initialpairing, and therefore may recognize the advertising packet asoriginating from the alert generation device 210 based on a matchbetween the stored identifier and an identifier included in theadvertising packet.

The electronic communication device 230 can be any type of computingdevice owned, operated, or otherwise associated with the user of thealert generation device 210. For example, the computing device can be amobile phone, a tablet computing device, a laptop computing device, or adesktop computing device. In some implementations, the electroniccommunication device 230 can be referred to simply as a computingdevice. Such devices are often useful for sending communications tovarious contacts of the user. However, communicating via the electroniccommunication device 230 can be time consuming and can require physicalaccess to the electronic communication device 230 by the user, which maybe difficult or impossible during an emergency situation. To allow thecomputing device to automatically notify the emergency contacts 270 thatthe user may be in danger, the electronic communication device 230executes an alert application 232.

The alert application 232 can be any type or form of software capable ofexecuting on the electronic communication device 230, and may beconfigured to execute at all times while the electronic communicationdevice 230 is powered on. The alert application 232 is configured toestablish one or more event listeners on the electronic communicationdevice 230. The event listeners can be configured to listen forcommunications or signals received by the computing device that aregenerated by the portable device. The portable device may, responsive toa user pressing the button on the portable device, transmit a signal tothe electronic communication device 230 via a short-range communicationsprotocol, such as BLE. The one or more event listeners established bythe application may identify that the electronic communication device230 receives the signal from the portable device. The event listenerthat identifies that the electronic communication device 230 receivesthe signal causes the electronic communication device 230 to launch theapplication 232.

The alert application 232 includes an alert generator 234, a policyengine 236, a location monitor 238, a graphical user interface (GUI)generator 240, and a database 242. The alert application 232 can beconfigured to receive the emergency indication sent by the alertgeneration device 210. Upon receiving the emergency indication, thealert application 232 attempts to identify a subset of the contacts 270who should be notified that the user may be experiencing an emergencyrequiring immediate assistance. For example, the policy engine 236 canbe configured to determine the subset of emergency contacts 270 tonotify based on one or more policies.

Policies may be stored in the database 242 and may include a set ofrules relating to the emergency contacts 270 who should be notified thatthe user is experiencing an emergency under different circumstances, aswell as the alert types that should be sent to the emergency contacts.In some implementations, contact information for the emergency contacts270 also can be stored in the database 242. In an example, uponreceiving the emergency indication from the alert generation device 210,the application 232 can use the location monitor 238 to determine thecurrent location of the electronic communication device 230. Generally,it can be assumed that the location of the electronic communicationdevice 230 is the same as the location of the user. The location monitor238 can be configured to determine the location based on informationreceived from a global positioning system receiver of the electroniccommunication device 230, a known location of a wireless network towhich the electronic communication device 230 is connected, cellulartower triangulation, or by other suitable means.

In some implementations, the location monitor 238 can also useinformation from other sensors of the electronic communication device todetermine the location of the electronic communication device 230 or tosupplement location information determined in other ways. For example, aGPS measurement may be sufficient identify a street addresscorresponding to the current location of the electronic communicationdevice. However, some addresses may be associated with large buildings,and therefore may not provide complete information that would allow anemergency contact to locate a person within the street address. Thelocation monitor 238 may also be configured to use information receivedfrom an accelerometer, a barometer, a compass, a pedometer, or othersensors included in the electronic communication device 230 to furtherspecify the current location. For example, accelerometer or barometerinformation can be used to determine an height or altitude of theelectronic communication device 230. By dividing the height or altitudeby an average floor height (e.g., 10 feet), the location monitor 238 canbe configured to determine which floor of a building the electroniccommunication device 230 is on at the address determined from the GPSmeasurement. Similarly, such sensor information can be used to determinehow far into the building or particular floor the user is, for examplebased on a number of steps taken by the user at that address.

In some implementations, the location monitor 238 can be configured topredict a likely location of a user at a particular time based on theuser's past behavior. For example, the location monitor 238 candetermine that the user typically has a routine of visiting a particularlocation (e.g., a gym) on Monday mornings, and then going to work afterthe gym. The location monitor 238 can use this information to store arecord of the user's typical behavior with respect to location. In someimplementations, the electronic communication device 230 can use thistype of expected or likely location information based on past userbehavior to determine that the user is expected to be at a particularlocation. Then, if the user fails to be an expected location (e.g., theuser deviates from the traditional location-based routine identified bythe location monitor 238, or the user misses one or more calendarappointments), the alert generator 234 can be configured to send analert to one or more emergency contacts to prompt the emergency contactsto check in with the user.

In some implementations, the location monitor 238 can also be configuredto transmit location information for the electronic communication device230 to the server 250 for remote storage. For example, the locationmonitor 238 can send such information to the server 250 on a periodicbasis (e.g., every hour, every 15 minutes, etc.). Doing so can help toensure that location information for the user is available even if theelectronic communication device 230 is powered off, for example due to abattery failure. In some implementations, the location monitor 238 mayonly send the location information to the server 250 when a batterylevel of the electronic communication device 230 falls below athreshold, such as 10% or 5% of its maximum capacity.

The policy engine 236 can then use the location information to select asubset of the emergency contacts 270 to notify that the user may beexperiencing an emergency based on one or more policies stored by (orotherwise accessible to) the policy engine 236. The policies may beconfigurable by the user, and may account for any combination of variousfactors including location, time, and calendar information (e.g.,expected destinations or calendared events). For example, if the policyengine 236 determines that the location information indicates theelectronic communication device 230 is at or near the user's place ofemployment, then the policy engine 236 can select a subset of theemergency contacts that include the user's coworkers, who are likely tobe in close proximity to the user. In another example, if the policyengine 236 determines that the location information indicates theelectronic communication device 230 is at or near the user's home, thenthe policy engine 236 can select a subset of the emergency contacts thatinclude the user's friends or family members who live near the user. Insome implementations, the policy engine 236 may select one or moreemergency contacts based on a current time. For example, the policyengine may select one or more of the user's coworkers as emergencycontacts for an emergency situation that occurs during the user's normalbusiness hours (e.g., between 9:00 AM and 5:30 PM), and may select oneor more of the user's family members or friends as emergency contactsfor an emergency situation that occurs outside of the user's normalbusiness hours (e.g., after 5:30 PM). In some implementations, thepolicy engine 236 may select other types of emergency contacts, such aspolice, firefighters, or other emergency workers.

The policy engine 236 also can be configured to use other policyinformation to select the subset of emergency contacts 270 to notify.For example, the policy engine 236 can be configured to accessinformation obtained from an electronic calendar maintained by the user.If an emergency indication is received from the alert generation device210, the policy engine can use the calendar information and locationinformation obtained from the location monitor 238 to determine whetherthe user appears to have missed a scheduled appointment. The policyengine may select at least some of the emergency contacts 270 based onthe calendar and/or location information. For example, if the emergencyindication arrives from the portable device at a time during which theuser is scheduled to be at a work-related event, the policy engine canselect one or more of the user's coworkers to be notified.

When the policy engine 236 determines the subset of emergency contacts270 to be notified, the alert generator 234 can generate and transmitone or more alerts to the selected subset of emergency contacts 270. Insome implementations, the alert generator 234 is configured to generatethe alert to include relevant information such as the user's location,so that the notified emergency contacts will be better able to reach theuser to provide assistance. The alert generator 234 can be configured togenerate alerts in various forms, including email, text messages, voicecalls, or application-based notifications. The alert application 232then sends generated alerts to the selected emergency contacts 270.

In some implementations, the policy engine 236 can be configured toselect emergency contacts 270 in a sequential fashion over time. Forexample, in some implementations the policy engine can select a firstemergency contact 270 to receive an alert. After the alert generator 234has sent the alert to the first emergency contact 270, the policy engine236 can be configured to confirm whether the first emergency contact 270responds to the alert. In some implementations, the response from thefirst emergency contact 270 can be communicated in a manner similar tothat of the alert sent to the first emergency contact 270. For example,if the alert is sent to the first emergency contact 270 as a textmessage, the first emergency contact 270 can respond by sending a replytext message. In some implementations, the policy engine 236 can waitfor a predetermined amount of time to receive confirmation that thefirst emergency contact 270 has responded to the alert. If the policyengine 236 determines that no response is received from the firstemergency contact 270, then the policy engine 236 can select a secondemergency contact who should be alerted, and the alert generator 234 cantransmit an alert to the second emergency contact. In someimplementations, the policy engine 236 can be configured to repeat thisprocess for a third emergency contact 270, a fourth emergency contact270, etc., until a response is received from at least one emergencycontact 270 who has received an alert. By selecting emergency contacts270 in this fashion, the policy engine 236 can reduce the total numberof alerts sent by the alert generator relative to implementations inwhich alerts are sent to a large number of emergency contacts 270simultaneously, while still ensuring that at least one emergency contactresponds to the alert.

Similarly, in some implementations, the policy engine 236 can beconfigured to select various formats for the alert to be sent based onwhether or not a response has been received. For example, the policyengine 236 can determine that an alert in the form of a text messageshould be sent to a subset of the emergency contacts 270. If the policyengine 236 does not detect a response from any emergency contact 270included in the selected subset of emergency contacts 270 within apredetermined time period, the policy engine 236 can be configured tocause the alert generator 234 to send a different type of alert, such asa phone call, to the same subset of emergency contacts 270. The policyengine 236 can repeat this process with additional alert types until atleast one response is received from one of the selected subset ofemergency contacts 270. Thus, the policy engine 236 can reduce the totalnumber of alerts sent, relative to implementations in which alerts ofmultiple types are sent simultaneously.

In some implementations, the alert application 232 can invoke anemergency service such as RapidSOS. RapidSOS is a service that canconnect an individual to nearby 911 operators, and can provideadditional information such as location information to the nearby 911operators. Because the alert application 232 may often be used insituations in which the user is unable to place an emergency call orotherwise interact with the electronic communication device 230, thealert application 232 can be configured to use the RapidSOS service toconnect one of the emergency contacts 270 to a 911 operator near theuser's location. For example, in some implementations, the alertapplication 232 can connect a voice call between a selected emergencycontact 270 and a 911 operator near the user's location. The selectedemergency contact 270 can then speak to the 911 operator to let themknow that the user needs emergency assistance. In some implementations,the alert application 232 also can be configured to transmit informationcorresponding to the user's current location to the 911 operator, sothat the 911 operator can more effectively dispatch emergency workers toassist the user if necessary.

In some implementations, one or both of the electronic communicationdevice 230 and the alert generation device 210 can be configured toprovide an indication to the user that an emergency contact 270 hasreceived their request for help and/or that help is on the way. In someimplementations, this indication may be provided using an output deviceof either the electronic communication device 230 or the alertgeneration device 210, such as an audible alert played through a speakeror a vibration pattern output by a vibrational output device. Forexample, as described above, the alert application 232 can be configuredto detect whether an emergency contact 270 has responded to an alert.When such a response is detected, the alert application 232 can beconfigured to cause the electronic communication device 230 to providean indication (e.g., an audible or vibrational output) that the responsewas received. In some implementations, the alert application 232 alsocan transmit information corresponding to the response back to the alertgeneration device 210, for example via Bluetooth or another form ofwireless communication. The alert generation device 210 can also beconfigured to provide an indication, such as an audible or vibrationaloutput, that the response was received so that the user can be assuredthat at least one emergency contact 270 has successfully been notifiedthat the user needs assistance.

In some implementations, as described above, the input button 212 of thealert generation device 210 can be configurable, and its functionalitycan be integrated with the policy engine 236. In some implementationsthe database 242 may store a policy indicating an alert type to be sentin response to a predetermined pattern of presses of the input button212. For example, if the user double presses the input button 212, thepolicy may indicate that text messages should be sent to one or moreemergency contacts 270 to notify them that the user is experiencing anemergency. The policy may also indicate that if the user triple pressesthe input button 212, then voice calls should be sent to the one or moreemergency contacts 270 to notify them that the user is experiencing anemergency. The emergency indication generator 214 can be configured totransmit the indication to the electronic communication device 230including information corresponding to the pattern of button pressesentered by the user, and the policy engine 236 can be configured toselect a format for the notification type to be sent based on thepattern of button presses entered by the user, according to a policystored in the database 242.

The GUI generator 240 is configured to provide an interface allowing theuser to interact with the alert application 232. In someimplementations, the interface can allow the user to configure settingsand preferences of the alert application 232 upon initial setup of thealert application 232, prior to experiencing any emergency. For example,the GUI generator 240 can be configured to provide an interface allowingthe user to enter contact information for each of the emergency contacts270, as well as other information related to the emergency contacts 270,such as a relationship between the user and each emergency contact 270that may be relevant to one or more policies used by the policy engine236 to determine which emergency contacts 270 should be notified duringa particular emergency situation. In some implementations, the GUIgenerator 240 can provide an interface that assists a user withrecording an audio message on the electronic communication device 230,which may be used as the alert notification to be sent to the emergencycontacts 270 in the event of an emergency.

In some implementations, the GUI generator 240 can be configured toprovide an interface to allow the user to connect one or more socialnetwork accounts to the alert application 232. For example, the user canenter login credentials, such as a username, email address, password,etc., for one or more social media accounts via the interface providedby the GUI generator 240. For each social media account that the userchooses to connect, the user may enable a feature allowing for emergencyalerts to be provided through the connected social media account whenthe user requires emergency assistance. For example, when the userpresses the input button 212 on the alert generation device 210 (orotherwise performs an action or experiences a situation causing thealert generation device 210 to transmit an indication of an emergency tothe electronic communication device 230), the alert generator 234 can beconfigured to generate a corresponding alert by adding a post orupdating a status of the user on the connected social media platform toindicate that the user may require emergency assistance. In someimplementations, the post or status update can also include additionalinformation, such as the location information identified by the locationmonitor 238. Thus, friends, family members, and others who follow theuser through the connected social media platform can be notified thatthe user may require emergency assistance.

In some implementations, the interface provided by the GUI generator 240can also be configured to allow the user to select a feature to notify“good Samaritans” who may be nearby through any of the connected socialmedia accounts. For example, when the user is experiencing an emergency,the alert generator 234 can be configured to determine one or moresocial media users who have checked into a location near the user'scurrent location (e.g., as determined based on information from thelocation monitor 238) via a social media account. The alert generator234 can then send a message or other notification to the one or morenearby users via the connected social media account to let them knowthat the user may require assistance. In some implementations, themessage or notification can include information including the user'sidentity, photo, current location, and profile information.

In some implementations, after the alert application 232 has received anindication from the emergency indication generator 214 of the alertgeneration device 210, the GUI generator 240 can be configured toprovide a GUI allowing the user to indicate that the emergency situationhas ended and that the user is no longer in need of immediateassistance. After the user has indicated that the emergency situationhas ended, the alert application 232 can be configured to send anupdated alert to notify those emergency contacts 270 who have receivedan alert indicating that the user was experiencing an emergency, so thatthose emergency contacts 270 will know that the user is safe and nolonger requires their help. In some implementations, the updated alertcan be sent in the same format as the original alert indicating theemergency situation, such as a text message, and email, or a voice call.In some implementations, the alert application 232 can be configured notto transmit an updated alert to any emergency contacts 270 to whom theoriginal alert was not sent, as those emergency contacts 270 do not havea need to receive the updated alert.

In some implementations, some of the functionality described above, suchas enforcement of the policies, selection of emergency contacts 270 tobe notified in the event of an emergency, and transmission of the alertto the selected emergency contacts 270, can be selected by the server250. The server 250 also manage other aspects of the system 200. Forexample, in some implementations, there may be a large number of thirdparties who each have a computing device similar to the electroniccommunication device 230 that executes a respective instance of thealert application 232. When the alert application 232 of the user'selectronic communication device 230 receives an indication from thealert generation device 210 that the user is experiencing an emergency,the server 250 can be configured to identify the third parties who arenear the user's location, and may transmit a communication to the thirdparties indicating that the user needs assistance. Thus, the system 200can allow third parties unrelated to the user to act as “goodSamaritans” when the user is in distress. This can be particularlyhelpful in instances in which none of the user's emergency contacts arephysically located near the user at the time of the emergency. Inaddition, instances of the alert application 232 can be configured totransmit alerts for other users whose devices (similar to the electroniccommunication device 230) may be powered off. For example, if the userpresses the input button 212 of the alert generation device 210 torequest emergency assistance, but the user's electronic communicationdevice 230 is powered off, other devices belonging to other nearby usersthat are executing an instance of the alert application 232 can beconfigured to transmit an alert on behalf of the user whose device ispowered off. Thus a group of devices such as the electroniccommunication device 230, as well as the server 250, can serve as a meshnetwork or tile-based solution for providing emergency alerts.

FIG. 2B depicts an alternative configuration 201 of the system 200 shownin FIG. 2A. As shown, the system 201 includes the alert generationdevice 210, the electronic communication device 230, and the emergencycontacts 270, all of which perform functions similar to those describedabove in connection with FIG. 2A. The system 201 also includes asecurity system 278 that serves as an intermediary between theelectronic communication device 230 and the emergency contacts 270. Forexample, the security system 278 can be or can include a remote helpcenter that can be staffed by human employees who may receive from theelectronic communication device 230 or the alert generation device 210the indication that the user is experiencing an emergency. The employeescan then reach out to the selected emergency contacts 270, which mayinclude police or other emergency workers. The employees may be able toprovide a greater level of assurance that the selected emergencycontacts have been notified, and may be able to provide follow-upcommunications to those emergency contacts 270 who may not respond to aninitial alert.

In some other implementations, the security system 278 can be a homesecurity system within the user's home. For example, such a homesecurity system may include at least one computing device, which mayexecute at least one application configured to contact the emergencycontacts 270 and/or to sound an alarm when activated. In suchimplementations, the alert application 232 executing on the electroniccommunication device 230 can interact with the security system 278 viaone or more application programming interface (API) calls to thesecurity system 278 that activate the security system 278. For example,the alert generator 234 can be configured to make the one or more APIcalls to the security system 278 in response to receiving the indicationthat the user requires emergency assistance from the emergencyindication generator 214. In some other implementations, the alertgeneration device 210 itself may activate the security system 278 (e.g.,via one or more API calls), when the user enters a predetermined patternof presses via the input button 212. The alert generation device 210 andthe electronic communication device 230 can be configured to communicatewith the security system 278 via any type of wired or wirelesscommunications protocol, including Bluetooth or Wifi. In someimplementations, the security system 278 may be accessible via a phoneconnection, and the alert generation device 210 and the electroniccommunication device 230 can be configured to communicate with thesecurity system 278 by dialing a phone number associated with thesecurity system 278 to activate the security system 278.

FIG. 2C depicts a website 275 that can serve as an alert notificationwithin the system 200 of FIG. 2A. For example, as described above, thealert generator 234 can be configured to provide alerts that may includemessages or other notifications having a live link to a URL of a websitesuch as the website 275 to enable recipients to identify and locate theuser who requires emergency assistance. For example, the website 275 caninclude location information 280, as well as a corresponding map 282,which may correspond to information determined by the location monitor238. The website 275 can also include identification information 284,which can include information such as a name of the user, a photographof the user, a phone number for the user, the user's date of birth, theuser's height and weight, and the user's ethnicity. The website 275 canalso include other attributes information 286, which may include anyallergies or medical conditions experienced by the user, disabilities ofthe user, medications prescribed to the user, or any other additionalnotes. In some implementations, the information displayed on the website275 can be provided by the user, for example via an interface generatedby the GUI generator 240 during an initial setup of the alertapplication 232. In some implementations, some of the information, suchas the location information 280 and corresponding map 282, can beupdated in real-time or near real-time while (e.g., based on updatedinformation from the location monitor 238), so that a recipient of thenotification that includes a link to the website 275 can have access toaccurate location information over time. In some implementations, atleast some of the information shown in the website 275 may be providedto the recipient of an alert notification (e.g., a user's emergencycontact) in other ways. For example, the user's emergency contact mayhave a computing device that executes an application that may be acompanion application to the alert application 232. In someimplementations, such a companion application can include anotherinstance of the alert application 232. The companion application candisplay any or all of the information shown in connection with thewebsite 275 when the user experiences an emergency situation. In someimplementations, the companion application may also include directionsto the user's location. For example, the directions can includedirections to an address or general area in which the user is located,as well as step by step instructions for finding the user within abuilding at a particular address.

FIG. 3 depicts a fashion accessory 300 that can be used in connectionwith the system shown in FIG. 2A. In this example, the fashion accessoryincludes a bracelet 305 having a charm 307. The charm 307 can beconfigured to interface with the alert generation device 210, such thatthe alert generation device 210 is integrated within the charm 307. Insome implementations, the alert generation device 210 can be removablyattached to the charm 307, such that the user can attach and remove thealert generation device 210 from the charm 307. It should be understoodthat the form of the accessory 300 is illustrative only. In someimplementations, many other forms of accessories, including necklaces,watches, and bracelets, may also be available. Such other accessoriesmay also include a component that is configured to interface with thealert generation device 210 in a manner similar to that of the charm 307shown in FIG. 3. Thus, the user may remove the alert generation device210 from the charm 307 and may attach the alert generation device 210 toanother one of the accessories according to the preferences of the user.In general, the form of the accessor 300 does not impact the operationof the alert generation device 210. Therefore, the accessory can bechosen primarily for aesthetic reasons and may be designed to be stylishand discreet when worn. As a result, the user is able to interact withthe alert generation device 210 as described above in connection withFIG. 2A, regardless of the particular accessor to which the device 210may be affixed at a given time.

FIG. 4 depicts an implementation of a method 400 for providing an alertnotification according to adaptive notification policies. Generally, themethod can be performed by a computing device such as the electroniccommunication device 230 shown in FIG. 2A. In brief overview the method400 includes receiving an advertising packet from an alert generationdevice (step 405), determining a current location (step 410),identifying at least one emergency contact based on at least one policy(step 415), determining an alert type based on the contact policy (step420), generating an alert including a request for assistance (step 425),and transmitting the alert to the at least one emergency contact (step430).

Referring again to FIG. 4, and in greater detail, the method 400includes receiving an advertising packet from an alert generation device(step 405). In some implementations, the alert generation device can bethe alert generation device 210 shown in FIG. 2A. In someimplementations, the advertising packet can be a low energy advertisingpacket, such as a Bluetooth Low Energy (BLE) advertising packet. Theadvertising packet can be a packet intended to advertise a presence ofthe alert generation device in the vicinity of the electroniccommunication device. Thus, the advertising packet may be distinguishedfrom other types of packets, such as data packets, that are intended toconvey a data payload after a communication channel has been establishedbetween the alert generation device and the electronic communicationdevice. For example, the advertising packet may have a smaller datapayload than a typical data packet, or may not include a data payload atall. In some implementations, the advertising packet may include onlyinformation such as a preamble and a device identifier (such as a UDID)of the alert generation device.

In some implementations, the advertising packet can be sent by the alertgeneration device in response to a user action performed on the alertgeneration device. For example, a user may perform an action using theinput button 212 of the alert generation device 210, as shown in FIG.2A. The action can include a single press of the input button 212, adouble press of the input button 212, a long press of the input button212 (i.e., holding the input button 212 in a depressed position for aperiod of time before releasing the input button 212), or any otherpattern of presses of the input button 212. In some otherimplementations, the alert generation device 210 can transmit theadvertising packet in the absence of direct user action, such as basedon a reading from the vitals monitor 216. As described above, a user mayuse the alert generation device 210 to inform contacts that the userrequires emergency assistance. When the user requires such assistance,the user can perform the action on the alert generation device 210 thatcauses the alert generation device 210 to transmit the advertisingpacket to be received by the electronic communication device. Thus, theadvertising packet itself can serve as an indication of an emergencysituation. In some implementations, the electronic communication devicecan execute an application that determines that the user may requireemergency assistance based on receiving the advertising packet, similarto the alert application 232 shown in FIG. 2A. Thus, the user can causethe alert generation device to indicate that the user of the alertgeneration device is in distress by interacting with the alertgeneration device, thereby causing the alert generation device totransmit the advertising packet to the electronic communication device.

In some implementations, the user interaction that causes the alertgeneration device to transmit the advertising packet can also cause thealert generation device to transition from a first state to a secondstate. For example, as described above, the alert generation device maynormally be in a low power mode, such as a sleep mode, in which thealert generation device conserves power by not transmitting informationor by only transmitting information infrequently. The user interaction(e.g., a press or pattern of presses of the input button 212) can causethe alert generation device to transition out of the low power mode orsleep mode and to begin transmitting the advertising packet one or moretimes. In some implementations, the alert generation module can pairwith the electronic communication device once, and may then enter thelow power mode or sleep mode until the user performs the action thatcauses the alert generation device to transition out of the sleep modeand begin transmitting the advertising packet. For example, the initialpairing can include any process by which the alert generation deviceregisters with or identifies itself to the electronic communicationdevice. The electronic communication device can store a UDID or otheridentifier associated with the alert generation device after the initialpairing, and therefore may recognize the advertising packet asoriginating from the alert generation device based on a match betweenthe stored identifier and an identifier included in the advertisingpacket.

The method includes determining a current location (step 410). Thecurrent location can correspond to the location of the electroniccommunication device that performs the method 400. In someimplementations, the location can be determined by a location monitorsuch as the location monitor 238 shown in FIG. 2A. The location monitorcan determine the location based on information received from a globalpositioning system receiver of the computing device, a known location ofa wireless network to which the computing device is connected, or bycellular tower triangulation. In some implementations, the locationmonitor can also use information from other sensors of the electroniccommunication device to supplement location information determined inother ways. For example, a GPS measurement can provide a street addressof the electronic communication device. The electronic communicationdevice may also be configured to use information received from anaccelerometer, a barometer, or other sensors to further specify thecurrent location, such as by determining a floor of a building that theelectronic communication device is on at the address determined from theGPS measurement.

The method 400 can include determining at least one emergency contactbased on at least one policy (step 415). In some implementations, thiscan be performed by a policy engine such as the policy engine 236 shownin FIG. 2A. For example, if the policy engine determines that thelocation information indicates the computing device is at or near theuser's place of employment, then the policy engine can select a subsetof the emergency contacts that include the user's coworkers. If thepolicy engine determines that the location information indicates thecomputing device is at or near the user's home, then the policy enginecan select a subset of the emergency contacts that include the user'sfriends or family members who live near the user. In someimplementations, the policy engine may select other types of emergencycontacts, such as police, firefighters, or other emergency workers.

The policy engine also can be configured to use other policy informationto select the subset of emergency contacts to notify. For example, thepolicy engine can be configured to access information obtained from anelectronic calendar maintained by the user. If an emergency indicationis received from the portable device, the policy engine can use thecalendar information and location information obtained from the locationmonitor in step 410 to determine whether the user appears to have misseda scheduled appointment. The policy engine may select at least some ofthe emergency contacts based on the calendar and/or locationinformation.

The method 400 includes determining an alert type based on the contactpolicy (step 420). In some implementations, this step can be performedby the policy engine of the electronic communication device. In someimplementations, the alert type can be based on a preference of theidentified emergency contact. For example, a user may store a list ofcontacts along with contact preferences for the contacts on theelectronic communication device. The alert type may include an email, atext message, a voice call, or an application-specific alert (e.g., anotification associated with a particular application executing on acomputing device of the identified emergency contact). In someimplementations, the policy engine can be configured to identify morethan one alert type for a given emergency contact. For example, alertsof two or more types can be sent to the identified emergency contact,either simultaneously or at predetermined intervals. In someimplementations, the alert type can include a social media-based alert.For example, the policy engine can be configured to select an alert typecorresponding to a status update of one or more social media accounts ofthe user to indicate that the user may require emergency assistance. Thealert type can also include a link to a uniform resource locator (URL)or a website that may include information indicating that the userrequires emergency assistance. For example, the website can includeinformation identifying the user, as well as current locationinformation of the user. In some implementations, the website can beupdated in real time to include accurate location information on anongoing basis. The alert type may therefore include a link to thewebsite to be sent to the emergency contact via a text-based form ofcommunication, such as via email or SMS message.

The method 400 includes generating the alert (step 425). In someimplementations, this can be performed by an alert generator such as thealert generator 234 shown in FIG. 2A. The alert generator can generatealerts in various forms. For example, the alert generator can generatean alert as an email, a text message, or a voice call, depending on thealert type determined in step 420. The alert can include the user'sidentity as well as the user's location, so that emergency contacts whoreceive the alert will be able to go to the user's location to provideassistance. The alert generator can also be configured to update asocial media status of the user or to create and/or update a websiteincluding the user's identity, location, and request for assistance, asdescribed above. The method 400 also includes transmitting the alert tothe at least one emergency contact (step 430). For example, theelectronic communication device can transmit the alert according to thealert type, such as by sending the email or text message, initiating thevoice call, sending the link to the website, etc. In someimplementations, the electronic communication device can send the alertvia any form of wired or wireless communication network, such as theInternet or a cellular-based network.

It should be understood that the systems described above may providemultiple ones of any or each of those components and these componentsmay be provided on either a standalone machine or, in some embodiments,on multiple machines in a distributed system. The systems and methodsdescribed above may be implemented as a method, apparatus or article ofmanufacture using programming and/or engineering techniques to producesoftware, firmware, hardware, or any combination thereof. In addition,the systems and methods described above may be provided as one or morecomputer-readable programs embodied on or in one or more articles ofmanufacture. The term “article of manufacture” as used herein isintended to encompass code or logic accessible from and embedded in oneor more computer-readable devices, firmware, programmable logic, memorydevices (e.g., EEPROMs, ROMs, PROMs, RAMs, SRAMs, etc.), hardware (e.g.,integrated circuit chip, Field Programmable Gate Array (FPGA),Application Specific Integrated Circuit (ASIC), etc.), electronicdevices, a computer readable non-volatile storage unit (e.g., CD-ROM,floppy disk, hard disk drive, etc.). The article of manufacture may beaccessible from a file server providing access to the computer-readableprograms via a network transmission line, wireless transmission media,signals propagating through space, radio waves, infrared signals, etc.The article of manufacture may be a flash memory card or a magnetictape. The article of manufacture includes hardware logic as well assoftware or programmable code embedded in a computer readable mediumthat is executed by a processor. In general, the computer-readableprograms may be implemented in any programming language, such as LISP,PERL, C, C++, C#, PROLOG, or in any byte code language such as JAVA. Thesoftware programs may be stored on or in one or more articles ofmanufacture as object code.

While various embodiments of the methods and systems have beendescribed, these embodiments are exemplary and in no way limit the scopeof the described methods or systems. Those having skill in the relevantart can effect changes to form and details of the described methods andsystems without departing from the broadest scope of the describedmethods and systems. Thus, the scope of the methods and systemsdescribed herein should not be limited by any of the exemplaryembodiments and should be defined in accordance with the accompanyingclaims and their equivalents.

1. A system for providing an alert notification, comprising an alertgeneration device comprising a triggering element and an electroniccommunication device, the electronic communication device configured to:receive, from the alert generation device, a low power advertisingpacket via a short-range wireless communication protocol responsive toan action performed on the triggering element of the alert generationdevice causing the alert generation device to switch from a first stateto a second state, wherein the alert generation device is configured toconsume more power in the second state than in the first state, the lowpower advertising packet including at least one field including a valuereserved for advertising packets; and responsive to the electroniccommunication device receiving the low power advertising packet from thealert generation device, the electronic communication device furtherconfigured to: determine a current location of the electroniccommunication device using a sensor of the electronic communicationdevice; identify at least one contact to receive an alert based on acontact policy, wherein the contact policy is stored in a memory elementof the electronic communication device; and transmit a communicationevent to a remote communication device of the at least one contact, thecommunication event configured to cause generation of the alert on theremote communication device of the at least one contact; determine thatthe at least one contact has not provided a response to the alert withina predetermined time period; identify, responsive to the determinationthat the at least one contact has not provided the response to the alertwithin the predetermined time period, a second contact to receive asecond alert based on the contact policy; and transmit a secondcommunication event to a second remote communication device associatedwith the second contact, the second communication event configured tocause generation of the second alert on the second remote communicationdevice of the second contact.
 2. The system of claim 1, wherein thecontact policy comprises calendar information stored in a memory elementof the electronic communication device.
 3. The system of claim 2,wherein the electronic communication device is configured to identifythe at least one contact by: determining, based on the calendarinformation stored in the memory element of the electronic communicationdevice, that a user of the electronic communication device is scheduledto be at a work-related event when the low power advertising packet isreceived; and identifying the at least one contact from among aplurality of coworkers of the user.
 4. The system of claim 1, whereinthe electronic communication device identifies the at least one contactby: determining a respective current location of each of a plurality ofcontacts; and identifying the at least one contact from among theplurality of contacts based on a proximity of the current location ofeach of the plurality of contacts to the current location of theelectronic communication device.
 5. The system of claim 1, wherein theelectronic communication device further receives a first response to thesecond alert from the second remote communication device of the secondcontact, the response indicating that the second contact received thesecond alert.
 6. (canceled)
 7. The system of claim 1, wherein theelectronic communication device is further configured to generate,responsive to receiving the low power advertising packet, an audiblealarm.
 8. The system of claim 1, wherein the electronic communicationdevice is further configured to generate a visual indication that thecommunication event was transmitted to the at least one contact.
 9. Thesystem of claim 1, wherein the electronic communication device transmitsthe communication event to the at least one contact by updating a statusof a social media account of a user of the electronic communicationdevice to indicate that the user of the electronic communication devicemay require assistance.
 10. The system of claim 1, wherein the alertincludes an indication of the current location of the electroniccommunication device.
 11. The system of claim 1, wherein the electroniccommunication device is further configured to: track, for apredetermined period of time, the current location of the electroniccommunication device; and update, during the predetermined period oftime, a website to include an indication of the current location of theelectronic communication device during the predetermined time period,wherein the alert comprises a uniform resource locator (URL) of the website.
 12. A method for providing an alert notification, comprising:receiving, by an electronic communication device from an alertgeneration device via a short-range wireless communication protocol, alow power advertising packet responsive to an action performed on atriggering element of the alert generation device causing the alertgeneration device to switch from a first state to a second state,wherein the alert generation device is configured to consume more powerin the second state than in the first state, the low power advertisingpacket including at least one field including a value reserved foradvertising packets; and responsive to the electronic communicationdevice receiving the low power advertising packet from the alertgeneration device: determining, by the electronic communication device,a current location of the electronic communication device using a sensorof the electronic communication device; identifying, by the electroniccommunication device, at least one contact to receive an alert based ona contact policy, wherein the contact policy is stored in a memoryelement of the electronic communication device; transmitting, by theelectronic communication device, a communication event to a remotecommunication device of the at least one contact, the communicationevent configured to cause generation of the alert on the remotecommunication device of the at least one contact; determining, by theelectronic communication device, that the at least one contact has notprovided a response to the alert within a predetermined time period;identifying, by the electronic communication device responsive to thedetermination that the at least one contact has not provided theresponse to the alert within the predetermined time period, a secondcontact to receive a second alert based on the contact policy;transmitting, by the electronic communication device, a secondcommunication event to a second remote communication device associatedwith the second contact, the second communication event configured tocause generation of the second alert on the second remote communicationdevice of the second contact.
 13. The method of claim 12, wherein thecontact policy comprises calendar information stored in a memory elementof the electronic communication device.
 14. The method of claim 13,wherein identifying the at least one contact comprises: determining, bythe electronic communication device based on the calendar informationstored in the memory element of the electronic communication device,that a user of the electronic communication device is scheduled to be ata work-related event when the low power advertising packet is received;and identifying the at least one contact from among a plurality ofcoworkers of the user.
 15. The method of claim 12, wherein identifyingthe at least one contact comprises: determining, by the electroniccommunication device, a respective current location of each of aplurality of contacts; and identifying the at least one contact fromamong the plurality of contacts based on a proximity of the currentlocation of each of the plurality of contacts to the current location ofthe electronic communication device.
 16. The method of claim 12, furthercomprising receiving, by the electronic communication device, a firstresponse to the second alert from the second remote communication deviceof the second contact, the response indicating that the second contactreceived the second alert.
 17. (canceled)
 18. The method of claim 12,further comprising generating, by the electronic communication deviceresponsive to receiving the low power advertising packet, an audiblealarm.
 19. The method of claim 12, further comprising generating, by theelectronic communication device, a visual indication that thecommunication event was transmitted to the remote communication deviceof the at least one contact.
 20. The method of claim 12, whereintransmitting the communication event to the remote communication deviceof the at least one contact comprises updating a status of a socialmedia account of a user of the electronic communication device toindicate that the user of the electronic communication device mayrequire assistance.